package javajavado.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import javajavado.clases.Respuesta;
import javajavado.excepcion.DAOExcepcion;
import javajavado.util.ConexionBD;

public class RespuestaDAO extends BaseDAO{
	
	//REGISTRAR REUNIONES
		public Respuesta insertar(Respuesta vo) throws DAOExcepcion {
			String query = "insert into Respuesta(Respuesta,Invitado_idInvitado,Idea_idIdea) values (?,?,?)";
			Connection con = null;
			PreparedStatement stmt = null;
			ResultSet rs = null;
			try {
				con = ConexionBD.obtenerConexion();
				stmt = con.prepareStatement(query);
				stmt.setString(1, vo.getRespuesta());
				stmt.setInt(2, vo.getInvitado_idInvitado());
				stmt.setInt(3, vo.getIdeaIdIdea()); 
				
				int i = stmt.executeUpdate();
				if (i != 1) {
					throw new SQLException("No se pudo insertar");
				}
				// Obtener el ultimo id
				int id = 0;
				query = "select last_insert_id()";
				stmt = con.prepareStatement(query);
				rs = stmt.executeQuery();
				if (rs.next()) {
					id = rs.getInt(1);
				}
				vo.setIdRespuesta(id);

			} catch (SQLException e) {
				System.err.println(e.getMessage());
				throw new DAOExcepcion(e.getMessage());
			} finally {
				this.cerrarResultSet(rs);
				this.cerrarStatement(stmt);
				this.cerrarConexion(con);
			}
			return vo;
		}
		
		// LISTAR REUNIONES
		public Collection<Respuesta> listar(String idea) throws DAOExcepcion {
			Collection<Respuesta> c = new ArrayList<Respuesta>();
			Connection con = null;
			PreparedStatement stmt = null;
			ResultSet rs = null;
			try {
				con = ConexionBD.obtenerConexion();
				String query = "select idRespuesta, Respuesta,Invitado_idInvitado,Idea_idIdea from Respuesta where Idea_idIdea = ? order by idRespuesta";
				stmt = con.prepareStatement(query);
				stmt.setString(1, idea);
				rs = stmt.executeQuery();
				while (rs.next()) {
					Respuesta vo = new Respuesta();
					vo.setIdRespuesta(rs.getInt("idRespuesta"));
					vo.setRespuesta(rs.getString("Respuesta"));
					vo.setInvitado_idInvitado(rs.getInt("Invitado_idInvitado"));
					vo.setIdeaIdIdea(rs.getInt("Idea_idIdea")); 
					c.add(vo);
				}

			} catch (SQLException e) {
				System.err.println(e.getMessage());
				throw new DAOExcepcion(e.getMessage());
			} finally {
				this.cerrarResultSet(rs);
				this.cerrarStatement(stmt);
				this.cerrarConexion(con);
			}
			return c;
		}
		
		//OBTENER REUNIONES 

}
